#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time  : 2021/11/25 9:04
# @Author: SherryYang
# @File  : a6.py
from PySide6.QtWidgets import QFileDialog, QApplication, QMainWindow, \
    QWidget, QPushButton, QLabel, QLineEdit
import sys


class LearnQFileDialog(QMainWindow):
    def __init__(self):
        super().__init__()
        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)
        self.initUI()

    def initUI(self):
        self.resize(640, 480)
        self.btn1 = QPushButton('open file', self.centralWidget)
        self.btn1.move(300, 300)
        self.btn1.clicked.connect(self.btn1Clicked)
        # self.label1 = QLabel(self.centralWidget)
        # self.label1.resize(200, 50)
        # self.label1.move(300, 200)
        self.line1 = QLineEdit(self.centralWidget)
        self.line1.resize(300, 30)
        self.line1.move(300, 100)

    def btn1Clicked(self):
        """
        1.打开一个文件路径  getExistingDirectory

        :return:
        """

        # filePath = QFileDialog.getExistingDirectory(
        #     self.centralWidget,  # 父窗口对象
        #     "选择存储路径",  # 标题
        #     r'C:\Users\user\Desktop'  # 起始目录
        # )
        # self.line1.setText(filePath)

        """
        2.打开一个文件 getOpenFileName
        该方法返回值 是一个元组，第一个元素是选择的文件路径，第二个元素是文件类型，
        如果你只想获取文件路径即可，可以采用下面的代码写法。
        如果用户点击了 选择框的 取消选择按钮，返回 空字符串。
        :return:
        """
        # filePath,_ = QFileDialog.getOpenFileName(
        #     self.centralWidget,  # 父窗口对象
        #     "选择你要上传的图片",  # 标题
        #     r"d:\\testsdk",  # 起始目录
        #     "图片类型 (*.png *.jpg *.bmp)"  # 选择类型过滤项，过滤内容在括号中
        # )
        # self.line1.setText(filePath)
        # print(filePath)

        """
        3.保存一个文件  getSaveFileName
        如果你想弹出文件选择框，选择路径和文件名，来 保存一个文件 ，
        可以使用 QFileDialog 静态方法 getSaveFileName ，比如
        """
        # filePath, _ = QFileDialog.getSaveFileName(
        #     self.centralWidget,  # 父窗口对象
        #     "保存文件",  # 标题
        #     r"d:\\testsdk",  # 起始目录
        #     "json类型 (*.json)"  # 选择类型过滤项，过滤内容在括号中
        # )
        # f = open(filePath, 'w', encoding='utf8')
        # f.write('aaa')
        # f.close()
        # self.line1.setText(filePath)
        # print(filePath)

        """
        4.如果要选择多个文件，使用 getOpenFileNames 静态方法
        上例中 filePaths 对应的返回值是一个列表，里面包含了选择的文件。
        如果用户点击了 选择框的 取消选择按钮，返回 空列表。
        
        """
        # filePaths, _ = QFileDialog.getOpenFileNames(
        #     self.centralWidget,  # 父窗口对象
        #     "选择你要上传的图片",  # 标题
        #     r"d:\\testsdk",  # 起始目录
        #     "图片类型 (*.png *.jpg *.bmp)"  # 选择类型过滤项，过滤内容在括号中
        # )
        # print(filePaths)

    pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    Mainwindow = LearnQFileDialog()
    Mainwindow.show()
    while app.exec():
        pass